package com.dl.exam.mapper;

import com.alibaba.fastjson.JSONObject;
import com.dl.exam.entity.question.Question;
import com.dl.exam.entity.question.SingleQuestion;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author DL
 * @create 2022-04-21 18:21
 */
public interface SingleMapper {

    /**
     * 增加试题
     * @param singleQuestion
     * @return
     */
    int insertQuestion(SingleQuestion singleQuestion);

    /**
     * 删除试题
     * @param questionId
     * @return
     */
    int deleteQuestion(String questionId);

    /**
     * 更新试题
     * @param questionForm
     * @return
     */
    int updateQuestion(JSONObject questionForm);

    /**
     * 根据 id 查询试题
     * @param questionId
     * @return
     */
    SingleQuestion queryQuestionById(String questionId);

    /**
     * 根据 用户id 查询用户的考试题目（未完成的考试）
     * @param examId 考试id
     * @return 考试信息
     */
    List<SingleQuestion> queryUnfinishedQuestion(String examId);

    /**
     * 查询所有单选题
     * @return 带分页信息的单选题
     */
    List<SingleQuestion> queryAllQuestion();

    /**
     * 考试开始，随机抽取试题
     * @param jsonObject 条件
     * @return 带分页信息的单选题
     */
    List<SingleQuestion> queryRandomQuestionByCondition(JSONObject jsonObject);

    /**
     * 根据条件查询试题
     * @param condition 条件
     * @return 带分页信息的单选题
     */
    List<SingleQuestion> queryQuestionByCondition(JSONObject condition);

    /**
     * 查询某场已完成的考试信息和答案
     * @param examId 考试id
     * @return
     */
    List<SingleQuestion> queryFinishedExamAnswer(String examId);

    /**
     * 根据 考试id 查询考试试题的答案
     * @param examId 用户id
     * @return 考试信息
     */
    List<HashMap<String, Object>> queryAnswerByExamId(String examId);
}
